alert("poulet");

//var comboSites;
//var  comboEntreprises;
var dataSites ;
var  dataEntreprises;

Ext.QuickTips.init();							//n�cessaire pour initialiser les infobulles d�erreur
Ext.form.Field.prototype.msgTarget = 'side';	//n�cessaire pour initialiser les infobulles d�erreur


function fct_inscription(btn){
	//Fonction pour rediriger l'utilisateur sur la m�me page o� il se trouve.
location.replace = location.href;
}

//Fonction appel�e en cliquant sur submit du formulaire
function fct_submit()
{
	var sb = Ext.getCmp('form-statusbar');	//on instancie la statusbar en bas a gauche de la fen�tre
	sb.showBusy('connexion ...');			//on y affiche un message de chargement
	login.getEl().mask();				//on applique un masque gris sur la fen�tre nomm�e login

	if (login.form.isValid())
	{			//si le formulaire dans login est valide
	   login.form.submit({			//similaire � la m�thode post
		url: 'log_post.php',		//URL de la page sur laquelle on effectue la m�thode post
		method: 'POST',

		reset: false,			//pour ne pas reseter les formulaires en cas d'�chec

		//Si une erreur est survenue lors du POST
		failure: function(result, action)
		{
			//L'objet JSON vas rechercher dans lire le r�sultat du POST et le d�coder
			obj = Ext.util.JSON.decode(action.response.responseText);
			//S'il s'agit d'une phrase g�n�rale on l'affiche(errors = type d'action ; reason : nom de l'action, on peut nommer cela comme on veut dans le formulaire post)
			var message = obj.errors.reason;

			//si le message n'inclue pas un ID pr�cis d'un champ de notre formulaire, on affiche simplement un message d'erreur g�n�ral dans notre status bar, et non a droite du champ concern�
			if (message == undefined) message = obj.errors[0].msg;

			sb.setStatus({		//On modifie le texte de notre status bar
				text:'Erreur : '+ message,
				iconCls:'',
				clear: true
			});
		}, //fin de la fonction failure

		//S'il n'y a pas eu d'erreur dans notre POST...
		success: function(result, action)
		{
			//Message de bienvenue
			obj = Ext.util.JSON.decode(action.response.responseText);
			var message = obj.msg.reason;		//on recherche le message � afficher
			sb.setStatus({
				text:'Authentification r&eacute;ussie : '+ message,
				iconCls:'',
				clear: true
			});
			//msgbox affichant le message de connexion, puis redirige l'utilisateur s'il clique sur ok
			Ext.MessageBox.alert('Bienvenue', message, fct_inscription);

		}	//fin de la fonction success

	});	//fin du submit
	}
	else
	{		//Si le formulaire n'est pas valide, on change la phrase dans notre status bar
		sb.setStatus({
			text:'Erreur : Formulaire non valide.',
			iconCls:'',
			clear: true
		});
	}
	login.getEl().unmask();
}




//Login, il s'agit d'un panel contenant le formulaire avec les champs login, password...
var login = new Ext.FormPanel({
	id: 'login',				//id de la fen�tre
	frame: true, 				//pour que tous les items soient dans la m�me frame
	autoWidth:true,
	autoHeight:true,
	labelWidth:  135, 			//largeur des labels des champs
	defaults: {width: 230}, 	//largeur des champs
	labelAlign: 'right',			//les labels s'aligneront a droite
	bodyCfg: {tag:'center', cls:'x-panel-body'},		//on aligne tous les champs au milieu de la fen�tre
	bodyStyle: 'padding:5p;margin:0px;',

	items: [{		//Ici, on affiche � la suite tous les champs que l'on veut mettre
        xtype: 'textfield',			// = champ de texte
		fieldLabel: 'Login', 		// = label de description du champ
		id: 'email',
		name: 'login',
		allowBlank: false,				//champ obligatoire pour poster le formulaire
		blankText:"Veuillez saisir votre login."	//message si le champ n'est pas rempli
	},
    {
		xtype: 'textfield',
		fieldLabel: 'Mot de passe',
		id: 'pass',
		name: 'pass',
		allowBlank: false,
		inputType: 'password',
		blankText:"Veuillez saisir votre mot de passe."
	},
    {
		xtype: 'button',
		text: 'Se connecter',
		handler: fct_submit	//fonction � appeler lorsque l'on clique sur le bouton
	},{
		xtype: 'hidden',		//Balise cach�e afin de dire qu'il s'agit d'une connexion
		id: 'connexion',
		name: 'connexion'
	}]
});

//Ce panel contiendra le panel pr�c�dent qui est le formulaire, sauf qu'en bas de celui ci figure la status bar, permettant d'afficher le status de la connexion (chargement ....)
var login_total = new Ext.Panel({
	autoWidth:true,
	autoHeight:true,
	layout: 'fit',
	items: login,		//On met dans ce panel le panel de login
	bbar: new Ext.StatusBar({
		id: 'form-statusbar',
		defaultText: 'Pr&eagrave;t',
		plugins: new Ext.ux.ValidationStatus({form:'login'})
	})
});


var win_login;
if(!win_login){			//Si la fen�tre de connexion n'existe pas, on la cr�e
	win_login = new Ext.Window({
		title: 'Authentification',		//titre de la fen�tre
		el:'popup_log_window',
//********* el = id du div dans le code html de la page qui contiendra la popup ! ************//
		width:450,
		closable: true,
		autoHeight:true,
		modal: true, 			//Grise automatiquement le fond de la page
		closeAction:'hide',
		items: login_total		//On met dans cette fen�tre le panel pr�c�dent
	});
}

function formConnect(){

function show_win_login(){
	win_login.show();
}

}

function recherche(){
        dataEntreprises = new Ext.data.JsonStore
        ({
                url: 'http://localhost/fonctions.php?action=getEntreprises',
                fields: ['nom']
        });
        
        dataEntreprises.load();

        dataSites = new Ext.data.JsonStore
        ({
                url: 'http://localhost/fonctions.php?action=getSites',
                fields: ['site','nom']
        });
        dataSites.load();

  var form_recherche = new Ext.form.FormPanel({
    url:'index.php',
    layout:'column',
    bodyStyle:'margin:10px',
    standardSubmit: true,

        items: [
                {        //Ici, on affiche à la suite tous les champs que l'on veut mettre
                        xtype: 'combo',
                        id : 'comboEntreprises',
                        name : 'comboEntreprises',
                        store: dataEntreprises,
                        displayField:'nom',
                        valueField:'nom',
                        typeAhead: true,
                        mode: 'local',
                        triggerAction: 'all',
                        emptyText:'Selectionner une entreprise ...',
                        selectOnFocus : true,
                        listeners:{
                                select:{
                                        fn:function()
                                        {
                                                Ext.getCmp('comboSites').clearValue
                                                Ext.getCmp('comboSites').store.filter('nom', Ext.getCmp('comboEntreprises').getValue());
                                         }
                                }
                        },
                        lastQuery:''
                },
                {
                        xtype: 'combo',
                        id : 'comboSites',
                        name : 'comboSites',
                        store: dataSites,
                        displayField:'site',
                        valueField:'site',
                        typeAhead: true,
                        mode: 'local',
                        triggerAction: 'all',
                        emptyText:'Selectionner un site ...',
                        selectOnFocus:true
                },
                {
                        xtype: 'button',
                        text: 'Rechercher',
                        handler: fct_submit    //fonction à appeler lorsque l’on clique sur le bouton
                }
      ]
      });
    form_recherche.render('recherche');
}

Ext.onReady();
